Non-determinism analyses in a parallel-functional language
نویسندگان
چکیده
The parallel-functional language Eden has a non-deterministic construct, the process abstraction merge, which interleaves a set of input lists to produce a single non-deterministic list. Its non-deterministic behaviour is a consequence of its reactivity: it immediately copies to the output list any value appearing at any of the input lists. This feature is essential in reactive systems and very useful in some deterministic parallel algorithms. The presence of non-determinism creates some problems such that some internal transformations in the compiler must be disallowed. The paper describes several non-determinism analyses developed for Eden aimed at detecting the parts of the program that, even in the presence of a process merge, still exhibit a deterministic behaviour. A polynomial cost algorithm which annotates Eden expressions is described in detail. A denotational semantics is described for Eden and the correctness of all the analyses is proved with respect to this semantics.
منابع مشابه
A Generic Analysis Server System for Functional Logic Programs
We present a system, called CASS, for the analysis of functional logic programs. The system is generic so that various kinds of analyses (e.g., groundness, non-determinism, demanded arguments) can be easily integrated. In order to analyze larger applications consisting of dozens or hundreds of modules, CASS supports a modular and incremental analysis of programs. Moreover, it can be used by dif...
متن کاملNon-determinism Analysis in a Parallel-Functional Language
The paper presents several analyses to detect non-determin-istic expressions in the parallel-functional language Eden. First, the need for the analysis is motivated, and then each one is presented. The rst one is type-based, while the other two are based on abstract interpretation. Their power and eeciency is discussed, and an example is used to illustrate the diierences. Two interesting functi...
متن کاملFunctional Parallel Programming with Explicit Processes: Beyond SPMD
Parallel programming languages tend to waste algorithmic expressiveness to avoid deadlocks, non-determinism and the general complexity of concurrent languages. As a result, most of them don’t specify data placement so that performance is unpredictable as a function of the source program (it depends on the language implementation, not its semantics). The BSP paradigm [7] demonstrates that explic...
متن کاملTowards a Parallel Virtual Machine for Functional Logic Programming
Functional logic programming is a multi-paradigm programming that combines the best features of functional programming and logic programming. Functional programming provides mechanisms for demand-driven evaluation, higher order functions and polymorphic typing. Logic programming deals with non-determinism, partial information and constraints. Both programming paradigms fall under the umbrella o...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- J. Funct. Program.
دوره 15 شماره
صفحات -
تاریخ انتشار 2005